home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / _archvrs / unix / lha101u / src / extract.c < prev    next >
C/C++ Source or Header  |  1992-04-24  |  1KB  |  50 lines

  1. /***********************************************************
  2.     extract.c -- extract file from archive
  3. ***********************************************************/
  4. #include "lharc.h"
  5. #include "intrface.h"
  6. extern int verify_mode;
  7.  
  8. int decode_lzhuf (infp, outfp, original_size, packed_size,name , method)
  9. FILE *infp;
  10. FILE *outfp;
  11. long original_size;
  12. long packed_size;
  13. char *name;
  14. int method;
  15. {
  16.   interface.method = method;
  17.   interface.dicbit = 13; /* method + 8; */
  18.   interface.infile = infp;
  19.   interface.outfile = outfp;
  20.   interface.original = original_size;
  21.   interface.packed = packed_size;
  22.  
  23.   switch (method) {
  24.   case 0:
  25.   case 8:
  26.     start_indicator (name, original_size
  27.              , verify_mode ? "Testing " : "Melting ",2048);
  28.     copyfile(infp, (verify_mode ? NULL : outfp), original_size, 2);
  29.     break;
  30.   case 6:    /* -lzs- */
  31.     interface.dicbit = 11;
  32.     start_indicator (name, original_size
  33.              , verify_mode ? "Testing " : "Melting "
  34.              , 1<<interface.dicbit);
  35.     decode(&interface);
  36.     break;
  37.   case 1: /* -lh1- */
  38.   case 4: /* -lh4- */
  39.   case 7: /* -lz5- */
  40.     interface.dicbit = 12;
  41.   default:
  42.     start_indicator (name, original_size
  43.              , verify_mode ? "Testing " : "Melting "
  44.              , 1<<interface.dicbit);
  45.     decode(&interface);
  46.   }
  47.   finish_indicator (name, verify_mode ? "Tested  " : "Melted  ");
  48.   return crc;
  49. }
  50.